/**  
 * @Title: SubAccountZuanService.java
 * @Package org.wk.digiccy.service
 * @Description: TODO【】
 * @author df.w 
 * @date 2018年5月9日 下午5:02:15
 * @version V1.0  
 */ 

package org.wk.account.service;


import com.alibaba.fastjson.JSONObject;
import org.springframework.data.domain.Page;
import org.wk.account.domain.bao.SubAccountBaoSeq;
import org.wk.account.domain.zuan.SubAccountZuanSeq;
import org.wk.account.view.ZuanExchangeCNYVo;
import org.wk.core.common.view.PageVo;
import org.wk.core.common.view.ResponseVo;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @ClassName	: SubAccountZuanService
 * @Package		：org.wk.digiccy.service
 * @Author df.w 
 * @Create Time	：2018年5月9日 下午5:02:15
 * @Description	: 
 */

public interface SubAccountZuanService {

	
	/**
	 * 鲸钻 注册奖励
	 * @param userId
	 * @return
	 */
	public boolean registerAward(String userId);
	
	/**
	 * 鲸钻 登录奖励
	 * @param userId
	 * @return
	 */
	public boolean loginAward(String userId);
	
	/**
	 * 鲸钻 推广奖励
	 * @param userId
	 * @return
	 */
	public boolean promoteAward(String userId);

	/**
	 * 鲸钻变动记录  分页
	 * @param page
	 * @param size
	 * @param subAccountZuanSeq
	 * @return
	 */
	Page<SubAccountZuanSeq> findSeqByCriteria(Integer page, Integer size, SubAccountZuanSeq subAccountZuanSeq);

	/**
	 * @Description 鲸钻 签到奖励
	 * @Param [userId]
	 * @author ZhaoPing'an
	 * @Date 2018/5/21 17:29
	 */
	public boolean attendancesAward(String userId);

	/**
	 * @Description 鲸钻 提取现金
	 * @param jsonObject
	 * @author ZhaoPing'an
	 * @Date 2018/6/28 11:54
	 */
    ResponseVo zuanExchangeCNY(JSONObject jsonObject);

    /**
     * @Description 鲸钻提现列表（PC）
     * @param
     * @author ZhaoPing'an
     * @Date 2018/7/3 16:21
     */
    PageVo findExchangeCNYListPage(Map<String,Object> params);
	/**
	 * @Description 鲸钻提现通过（PC）
	 * @param
	 * @author ZhaoPing'an
	 * @Date 2018/7/3 16:30
	 */
	ResponseVo successExchangeCNY(String id);

	/**
	 * @Description  鲸钻提现拒绝（PC）
	 * @param
	 * @author ZhaoPing'an
	 * @Date 2018/7/3 16:30
	 */
	ResponseVo refuseExchangeCNY(ZuanExchangeCNYVo zuanExchangeCNYVo);

    void updateZuanAccount(BigDecimal zuan, String userId);

    Page<SubAccountZuanSeq> findSeqByUserIds(int pageNum, int pageSize, List<String> userIds);
}
